/*
 *  color_nota.h
 *  Wilson
 *
 *  Created by Sebastian Orfino on 11/22/11.
 *  Copyright 2011 lbs3. All rights reserved.
 *
 */

#ifndef __COLORNOTA__
#define __COLORNOTA__

namespace wilson {
	/** helper para crear el swatch que represente al color de una nota.
	 El swatch debe exisitir en el doc para que se pueda aplicar a un page item como lo es una nota (kWilNoteSplineItemBoss)
	 y con este helper lo creamos y lo agregamos a la lista de swatch activa
	 */
	class color_nota {

		UID swatch_;
		
	public:
		
		/** crea el swatch y lo agrega a la lista de swatches activa. Se puede acceder haciendo swatch_uid() 
		 el metodo va a terminar creando un swatch con el prefijo WilSwatch_ y luego la componente de colores del mismo. Por ej
		 WilSwatch_R=10 G=232 B=121. En "production code" debe ser invisible para el usuario ya que solo se usa para adornar
		 las cajas de las notas que solamente van a estar en la capa WILSON_NOT_PRINTABLE que como el nombnre lo indica no es imprimible.
		 @param colorRgb [0]=red,[1]=green,[2]=blue*/
		void crear(const ColorArray& colorRgb, bool esInvisible = true);
		
		/** devuelve el UID del swatch creado o kInvalidUID */
		UID swatch_uid() const { return swatch_; }
		
		/** si el swatch es valido */
		bool IsValid() const { return swatch_.IsValid(); }
		
		void cambiar(const UID& nuevo_swatch) { swatch_ = nuevo_swatch; }
};

}
#endif //__COLORNOTA__